#ifndef _TUPLE_H_
#define _TUPLE_H_
#include "python3/PythonGrammar30TreeConstants.h"
#include "ast/exprType.h"
#include "ast/exprType.h"
#include "ast/exprContextType.h"
#include "AstTypes.h"
class IVisitor;
class Tuple;
typedef QSharedPointer<Tuple> TuplePtr;

class Tuple: public exprType
{
public:
    explicit Tuple(const ExprTypeList& elts, int ctx, bool endsWithComma, int nodeId=JJTTUPLE);
    virtual ~Tuple();
    
    
    ExprTypeList elts();
    void setElts(const ExprTypeList& elts);
    
    int ctx();
    void setCtx(int ctx);
    
    bool endsWithComma();
    void setEndsWithComma(bool endsWithComma);
    
    
    virtual Ast::AstTypes type() const;
    virtual QString toString() const;
    virtual void accept(IVisitor* visitor, const SimpleNodePtr& node);
    virtual void traverse(IVisitor* visitor);
private:
    ExprTypeList _elts;
    int _ctx;
    bool _endsWithComma;
};




#endif